package evemanutool.gui.general.tabel; import java.util.ArrayList; import java.util.Collection; import javax.swing.table.AbstractTableModel; @SuppressWarnings("serial") public abstract class SimpleTableModel<T> extends AbstractTableModel { //Constants. private final int[] columnAlign; private final int[] editableColumns; protected final ArrayList<T> dataList = new ArrayList<>(); private final String[] columns; public SimpleTableModel(String[] columns, int[] columnAlign) { this.columns = columns; this.columnAlign = columnAlign; this.editableColumns = new int[0]; } public SimpleTableModel(String[] columns, int[] columnAlign, int[] editableColumns) { this.columns = columns; this.columnAlign = columnAlign; this.editableColumns = editableColumns; } public void setData(Collection<T> l) { dataList.clear(); dataList.addAll(l); fireTableDataChanged(); } public T getDataAt(int row) { return dataList.get(row); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { for (int i : editableColumns) { if (i == columnIndex) { return true; } } return false; } @Override public String getColumnName(int col) { return columns[col]; } @Override public int getColumnCount() { return columns.length; } @Override public int getRowCount() { return dataList.size(); } public int size() { return dataList.size(); } public int[] getColumnAlign() { return columnAlign; } public int[] getEditableColumns() { return editableColumns; } }